function [b_edge_value, edge_node] = compute_edge_gauss()
b1 = @(x,y) 1 - 2.*x;
b2 = @(x,y) 2.*x + 2.*y -1;
b3 = @(x,y) 1 - 2.*y;
points = [-0.8611363115940525752239465;-0.3399810435848562648026658;
    0.3399810435848562648026658;0.8611363115940525752239465];
b_edge_value = zeros(3,4,3);
edge_node = zeros(4,2,3);
for i = 1 : 3
    switch i
        case 1
            for j = 1 : 4
                tmp_x = 0.5 + 0.5*points(j);
                tmp_y = 0;
                b_edge_value(1,j,i) = b1(tmp_x, tmp_y);
                b_edge_value(2,j,i) = b2(tmp_x, tmp_y);
                b_edge_value(3,j,i) = b3(tmp_x, tmp_y);
                edge_node(j,:,i) = [tmp_x,tmp_y];
            end
        case 2
            for j = 1 : 4
                tmp_x = 0;
                tmp_y = 0.5 + 0.5*points(j);
                b_edge_value(1,j,i) = b1(tmp_x, tmp_y);
                b_edge_value(2,j,i) = b2(tmp_x, tmp_y);
                b_edge_value(3,j,i) = b3(tmp_x, tmp_y);
                edge_node(j,:,i) = [tmp_x,tmp_y];
            end
        case 3
            for j = 1 : 4
                tmp_x = 0.5 + 0.5*points(j);
                tmp_y = 0.5 - 0.5*points(j);
                b_edge_value(1,j,i) = b1(tmp_x, tmp_y);
                b_edge_value(2,j,i) = b2(tmp_x, tmp_y);
                b_edge_value(3,j,i) = b3(tmp_x, tmp_y);
                edge_node(j,:,i) = [tmp_x,tmp_y];
            end
    end
end
end